package org.ccay.core.expression;

import java.lang.reflect.Method;

/**
 * 方法拦截上下文
 * @author chaowangbang
 *
 */
public class InvocationContext {


	/** 被拦截的对象 **/
	protected Object target;
	
	/** 被拦截的方法 **/
	protected Method method;
	
	/** 方法的参数值 **/
	protected Object[] parameterValues;
	
	/**
	 * 构造函数
	 * 
	 * @param caller
	 * @param target
	 * @param method
	 * @param parameterValues
	 */
	public InvocationContext(Object target, Method method, Object[] parameterValues) {
		this.target = target;
		this.method = method;
		this.parameterValues = parameterValues;
	}

	/**
	 * @return target
	 */
	public Object getTarget() {
		return target;
	}

	/**
	 * @return method
	 */
	public Method getMethod() {
		return method;
	}

	/**
	 * @return parameterValues
	 */
	public Object[] getParameterValues() {
		return parameterValues;
	}
	
	public Class<?> getTargetClass() {
		return target.getClass();
	}
}
